package cn.tedu.flower.manage.content.service;

import cn.tedu.flower.manage.content.pojo.param.BannerAddNewParam;
import cn.tedu.flower.manage.content.pojo.param.BannerUpdateInfoParam;
import cn.tedu.flower.manage.content.pojo.vo.BannerListItemVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 处理轮播图业务的接口
 *
 * @author java@tedu.cn
 * @version 1.0
 */
@Transactional
public interface IBannerService {

    /**
     * 轮播图“是否启用”的状态文本
     */
    String[] ENABLE_TEXT = {"禁用", "启用"};
    /**
     * 轮播图“是否显示在导航栏”的状态文本
     */
    String[] DISPLAY_TEXT = {"隐藏", "显示"};

    /**
     * 添加类别
     *
     * @param bannerAddNewParam 新的轮播图数据
     */
    void addNew(BannerAddNewParam bannerAddNewParam);

    /**
     * 根据ID删除轮播图
     *
     * @param id 尝试删除的轮播图数据的ID
     */
    void delete(Long id);

    /**
     * 修改轮播图数据
     *
     * @param id                      被修改的轮播图数据的ID
     * @param bannerUpdateInfoParam 轮播图的新数据
     */
    void updateInfoById(Long id, BannerUpdateInfoParam bannerUpdateInfoParam);

    /**
     * 查询轮播图数据列表
     *
     * @return 轮播图数据列表
     */
    List<BannerListItemVO> list();
}
